home *** CD-ROM | disk | FTP | other *** search
/ Windows News 2011 January - Disc 2 / wn199cd2.iso / Onglet1 / Handy Backup 6.5 / handybackup_setup.msi / build_packet.nsi < prev    next >
Text File  |  2010-02-15  |  9KB  |  288 lines

  1.  
  2. Var Param  
  3. Var paramlen
  4.  
  5. !define PRODUCT_NAME "Backup Network Workstation"
  6. !define PRODUCT_NAME_SHORT "BackupNetworkWorkstation"
  7.  
  8. !define PRODUCT_PUBLISHER "Novosoft LLC"
  9. !define PRODUCT_PUBLISHER_SHORT "Novosoft"
  10. !define PRODUCT_WEB_SITE "http://www.handybackup.net"
  11. !define PRODUCT_PURCHASE_URL "http://www.handybackup.net/order.shtml"
  12. !define PRODUCT_COPYRIGHT "Copyright ⌐ 2009 Novosoft LLC"
  13.  
  14. SetCompressor lzma
  15.  
  16. !define PRODUCT_HBPLUG_DIR "HBPlugins"
  17. !define PRODUCT_VERSION "${PRODUCT_VERSION_MAJOR}.${PRODUCT_VERSION_MINOR}"
  18. !define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\BackupNetworkWorkstation.exe"
  19. !define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
  20. !define PRODUCT_UNINST_ROOT_KEY "HKLM"
  21.  
  22. !define REGISTRY_KEY "SOFTWARE\${PRODUCT_PUBLISHER_SHORT}\${PRODUCT_NAME}"
  23.  
  24. #################################################################
  25.  
  26. VIProductVersion "${PRODUCT_VERSION}"
  27.  
  28. VIAddVersionKey ProductName "${PRODUCT_NAME} ${PRODUCT_VERSION}"
  29. VIAddVersionKey Comments ""
  30. VIAddVersionKey CompanyName "${PRODUCT_PUBLISHER}"
  31. VIAddVersionKey LegalCopyright "${PRODUCT_COPYRIGHT}"
  32. VIAddVersionKey FileDescription ""
  33. VIAddVersionKey FileVersion ""
  34. VIAddVersionKey ProductVersion "${PRODUCT_VERSION}"
  35. VIAddVersionKey InternalName "${PRODUCT_NAME}"
  36. VIAddVersionKey LegalTrademarks ""
  37. VIAddVersionKey OriginalFilename "${PRODUCT_NAME}"
  38. VIAddVersionKey PrivateBuild ""
  39. VIAddVersionKey SpecialBuild ""
  40.  
  41. BrandingText "${PRODUCT_COPYRIGHT}"
  42.  
  43. Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
  44. OutFile "${OUTPUT}"
  45. InstallDir "$PROGRAMFILES\${PRODUCT_PUBLISHER_SHORT}\${PRODUCT_NAME}"
  46. InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" ""
  47. ShowInstDetails nevershow
  48. ShowUnInstDetails nevershow
  49.  
  50. Function .onInit
  51.     ReadRegStr $0 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Handy Backup" "DisplayName"
  52.     StrCpy $1 $0 19
  53.     StrCmp $1 "Handy Backup Server" HBSInstalled EndHBSCheck
  54.     HBSInstalled:
  55.         MessageBox MB_ICONEXCLAMATION|MB_YESNO "Installation Wizard has detected that Handy Backup Server is installed on this computer. Backup Network Workstation must be installed on another machine. Do you want to proceed with the installation anyway?" IDYES true IDNO false
  56.         false:
  57.             Quit
  58.         true:
  59.     EndHBSCheck:
  60. FunctionEnd
  61.  
  62. Section "MainSection" SEC01
  63.  
  64.     SetOutPath "$INSTDIR"
  65.     CreateDirectory "$INSTDIR"
  66.     CreateDirectory "$INSTDIR\${PRODUCT_HBPLUG_DIR}"
  67.  
  68.     SetOverwrite try
  69.     
  70.     ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  71.     ; RTLs
  72.  
  73.     Push "mfc80.dll"
  74.     Call ExtractFile
  75.     File "${CURRENT_WORK_DIR}mfc80.dll"
  76.     
  77.     Push "mfc80u.dll"
  78.     Call ExtractFile
  79.     File "${CURRENT_WORK_DIR}mfc80u.dll"
  80.  
  81.     Push "Microsoft.VC80.MFC.manifest"
  82.     Call ExtractFile
  83.     File "${CURRENT_WORK_DIR}Microsoft.VC80.MFC.manifest"
  84.     
  85.     Push "msvcr80.dll"
  86.     Call ExtractFile
  87.     File "${CURRENT_WORK_DIR}msvcr80.dll"
  88.     
  89.     Push "msvcp80.dll"
  90.     Call ExtractFile
  91.     File "${CURRENT_WORK_DIR}msvcp80.dll"
  92.     
  93.     Push "Microsoft.VC80.CRT.manifest"
  94.     Call ExtractFile
  95.     File "${CURRENT_WORK_DIR}Microsoft.VC80.CRT.manifest"
  96.  
  97.     Push "License.rtf"
  98.     Call ExtractFile
  99.     File "${CURRENT_WORK_DIR}License.rtf"
  100.     
  101.     ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  102.     ; Files
  103.  
  104.     ExecWait '$INSTDIR\BackupNetworkWorkstation.exe -k'
  105.     ExecWait '$INSTDIR\BackupNetworkWorkstation.exe -r'
  106.     Push "BackupNetworkWorkstation.exe"
  107.     Call ExtractFile
  108.     File "${CURRENT_WORK_DIR}BackupNetworkWorkstation.exe"
  109.     
  110.     Push "BackupNetworkWorkstationConfiguration.exe"
  111.     Call ExtractFile
  112.     File "${CURRENT_WORK_DIR}BackupNetworkWorkstationConfiguration.exe"
  113.     
  114.     ;; Required by: remote plug-in, server
  115.     Push "NetworkParameters.dll"
  116.     Call ExtractFile
  117.     File "${CURRENT_WORK_DIR}NetworkParameters.dll"
  118.  
  119.     Push "HBLib.dll"
  120.     Call ExtractFile
  121.     File "${CURRENT_WORK_DIR}HBLib.dll"
  122.     
  123.     ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  124.     ; Support
  125.     
  126.     Push "ACE.dll"
  127.     Call ExtractFile
  128.     File "${CURRENT_WORK_DIR}ACE.dll"
  129.     
  130.     ;; Required by: remote plug-in, naming server, server
  131.     Push "TAO.dll"
  132.     Call ExtractFile
  133.     File "${CURRENT_WORK_DIR}TAO.dll"
  134.  
  135.     ;; Required by: remote plug-in, naming server, server
  136.     Push "TAO_CosNaming.dll"
  137.     Call ExtractFile
  138.     File "${CURRENT_WORK_DIR}TAO_CosNaming.dll"
  139.     
  140.     ;; Required by: remote plug-in, naming server, server
  141.     Push "TAO_AnyTypeCode.dll"
  142.     Call ExtractFile
  143.     File "${CURRENT_WORK_DIR}TAO_AnyTypeCode.dll"
  144.     
  145.     ;; Required by: remote plug-in, server
  146.     Push "TAO_PortableServer.dll"
  147.     Call ExtractFile
  148.     File "${CURRENT_WORK_DIR}TAO_PortableServer.dll"
  149.     
  150.     Push "TAO_Codeset.dll"
  151.     Call ExtractFile
  152.     File "${CURRENT_WORK_DIR}TAO_Codeset.dll"
  153.  
  154.  
  155.     SetShellVarContext all
  156.     CreateDirectory "$APPDATA\${APP_DIR_SUFFIX}"
  157.     SetOutPath "$APPDATA\${APP_DIR_SUFFIX}"
  158.     File /r "${WORKSTATION_SETTINGS_DIR}\*"
  159.     SetShellVarContext current
  160.  
  161.     CreateDirectory "$APPDATA\${APP_DIR_SUFFIX}"
  162.     SetOutPath "$APPDATA\${APP_DIR_SUFFIX}"
  163.     File /r "${USER_SETTINGS_DIR}\*"
  164.  
  165.  
  166. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  167. ;; Network framework support (common libs)
  168.  
  169.     
  170. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  171. ;;    HB plugins
  172.  
  173.     CreateDirectory "$INSTDIR\${PRODUCT_HBPLUG_DIR}"
  174.     SetOutPath "$INSTDIR\${PRODUCT_HBPLUG_DIR}"
  175.  
  176.     ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  177.     ;; Backup network server support
  178.     Push "LocalFSPlugin.dll"
  179.     Call ExtractFile
  180.     File "${CURRENT_WORK_DIR}HBPlugins\LocalFSPlugin.dll"
  181.     Push "WorkstationPlugin.dll"
  182.     Call ExtractFile
  183.     File "${CURRENT_WORK_DIR}HBPlugins\WorkstationPlugin.dll"
  184.     Push "ExchangePlugin.dll"
  185.     Call ExtractFile
  186.     File "${CURRENT_WORK_DIR}HBPlugins\ExchangePlugin.dll"
  187.     Push "MSSQLPlugin.dll"
  188.     Call ExtractFile
  189.     File "${CURRENT_WORK_DIR}HBPlugins\MSSQLPlugin.dll"
  190.     Push "DB2P1.dll"
  191.     Call ExtractFile
  192.     File "${CURRENT_WORK_DIR}HBPlugins\DB2P1.dll"
  193.     Push "ImagePlugin.dll"
  194.     Call ExtractFile
  195.     File "${CURRENT_WORK_DIR}HBPlugins\ImagePlugin.dll"
  196.     Push "NotesPlugin.dll"
  197.     Call ExtractFile
  198.     File "${CURRENT_WORK_DIR}HBPlugins\NotesPlugin.dll"
  199.     Push "1CPlugin.dll"
  200.     Call ExtractFile
  201.     File "${CURRENT_WORK_DIR}HBPlugins\1CPlugin.dll"
  202.     Push "1cv81Plugin.dll"
  203.     Call ExtractFile
  204.     File "${CURRENT_WORK_DIR}HBPlugins\1cv81Plugin.dll"
  205.     Push "1cMultiversionPlugin.dll"
  206.     Call ExtractFile
  207.     File "${CURRENT_WORK_DIR}HBPlugins\1cMultiversionPlugin.dll"
  208.     Push "OraclePlugin.dll"
  209.     Call ExtractFile
  210.     File "${CURRENT_WORK_DIR}HBPlugins\OraclePlugin.dll"
  211.     Push "OutlookPlugin.dll"
  212.     Call ExtractFile
  213.     File "${CURRENT_WORK_DIR}HBPlugins\OutlookPlugin.dll"
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  
  220.  
  221.     SetOutPath "$INSTDIR"
  222.  
  223.     ExecWait '$INSTDIR\BackupNetworkWorkstation.exe -i'
  224.     !ifdef ASK_FOR_PARAMETERS
  225.         ExecWait '$INSTDIR\BackupNetworkWorkstationConfiguration.exe'
  226.     !else
  227.         ExecWait '$INSTDIR\BackupNetworkWorkstationConfiguration.exe --silent_install'
  228.     !endif
  229.  
  230. SectionEnd
  231.  
  232. Section -AdditionalIcons
  233.     WriteIniStr "$INSTDIR\${PRODUCT_NAME}.url" "InternetShortcut" "URL" "${PRODUCT_WEB_SITE}"
  234.     CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\Setup.lnk" "$INSTDIR\BackupNetworkWorkstationConfiguration.exe"
  235.     CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\Website.lnk" "$INSTDIR\${PRODUCT_NAME}.url"
  236.     CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\Uninstall.lnk" "$INSTDIR\uninst.exe"
  237. SectionEnd
  238.  
  239. Section Uninstall
  240.  
  241.     DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
  242.  
  243.     ExecWait '$INSTDIR\BackupNetworkWorkstation.exe -k'
  244.     ExecWait '$INSTDIR\BackupNetworkWorkstation.exe -r'
  245.  
  246.     RMDir /r "$INSTDIR"
  247.     RMDir /r "$SMPROGRAMS\${PRODUCT_NAME}"
  248.  
  249.     SetAutoClose true
  250.  
  251. SectionEnd
  252.  
  253. Section -Post
  254.     WriteUninstaller "$INSTDIR\uninst.exe"
  255.     WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\BackupNetworkWorkstation.exe"
  256.     WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
  257.     WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe"
  258.     WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\backup.exe"
  259.     WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
  260.     WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}"
  261.     WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}"
  262. SectionEnd
  263.  
  264.  
  265. Function ExtractFile
  266.   Pop $0
  267.  StrCpy $Param "$OUTDIR\$0"
  268.   IfFileExists "$Param" 0 FileNotPresent
  269.   Delete "$Param"
  270.   IfFileExists $Param 0 FileNotPresent
  271.   Delete "$Param.old"
  272.   Rename $Param "$Param.old"
  273.   Delete /REBOOTOK "$Param.old"
  274.   IfFileExists $Param 0 FileNotPresent
  275.  tryDelete:
  276.   Rename $Param "$Param.old"
  277.   Delete /REBOOTOK "$Param.old"
  278.   IfFileExists $Param 0 FileNotPresent
  279.   StrCpy $Param "$Param.old"
  280.   StrLen $paramlen $Param
  281.   IntCmp $paramlen 100 tryDelete tryDelete 0
  282.   Delete /REBOOTOK "$Param"
  283.   MessageBox MB_ICONEXCLAMATION|MB_OK "Installation can not be continued because file $Param can not be replaced. Please reboot and try to install again."
  284.   Quit
  285.   FileNotPresent:
  286. FunctionEnd
  287.  
  288.